package com.mars.admin.modules.goods.service;

import com.mars.admin.modules.goods.entity.GoodsCategory;
import com.mybatisflex.core.service.IService;

import java.util.List;

/**
 * 商品分类服务接口
 *
 * @author Mars
 * @version 1.0
 * @date 2025-01-07
 */
public interface GoodsCategoryService extends IService<GoodsCategory> {

    /**
     * 获取分类树
     *
     * @return 分类树列表
     */
    List<GoodsCategory> getCategoryTree();

    /**
     * 获取指定父级的子分类
     *
     * @param parentId 父级ID
     * @return 子分类列表
     */
    List<GoodsCategory> getChildrenByParentId(Long parentId);

    /**
     * 根据分类编码获取分类
     *
     * @param categoryCode 分类编码
     * @return 分类信息
     */
    GoodsCategory getByCategoryCode(String categoryCode);

    /**
     * 检查分类编码是否存在
     *
     * @param categoryCode 分类编码
     * @param excludeId 排除的ID（用于编辑时检查）
     * @return 是否存在
     */
    boolean existsCategoryCode(String categoryCode, Long excludeId);
} 